from IPython.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
The raw code for this IPython notebook is by default hidden for easier reading.
To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.''')
#hide warnings
HTML('''<script>
code_show_err=true;
function code_toggle_err() {
if (code_show_err){
$('div.output_stderr').hide();
} else {
$('div.output_stderr').show();
}
code_show_err = !code_show_err
}
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output errors, click <a href="javascript:code_toggle_err()">here</a>.''')
print('Testing GAL4 lines upstream to 64A11-LexA')
print('Project A83, Daniel Bushey')
print('Second Pass')
print('First pass had the ROIs drawn in the wrong location. In this second pass, drew "Posterior1" ROI in the correct location.')
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
import pandas as pd
import os
import sys
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import ccModules as cc
import ccModules2 as cc2
from IPython.html.widgets import interact
import pandas as pd
from IPython.display import IFrame
from bokeh.palettes import Spectral4
from bokeh.plotting import figure, output_file, show
#load project specific parameters
from A83_init20181228 import *
#load data
#load pandas data frame
exceldata = pd.read_hdf(os.path.join(saveFig, 'Compiled_data.hdf5'), 'data')
#print(exceldata.shape)
#exceldata = exceldata[exceldata['Grade'] == 1]
print('Checking how many sessions included in the loaded data set:')
print(len(exceldata))
#pull out roi data and add each roi as separate row
exceldata = cc2.pullIntensityData(exceldata)
#check parameters within data
parameters_to_compare = ['Genotype']
print('These are the different conditions tested.')
for cp in parameters_to_compare:
print('Parameter:', cp)
print(exceldata[cp].unique())
#get count of responders
print('Number that responded')
groups = exceldata[exceldata['roi'] == 'Posterior1'].groupby(['Genotype'])
groups['Posterior1 Responds'].agg(['sum','count'])
from bokeh.io import output_notebook, show
from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import Range1d
output_notebook()
'''
#create a dictionary holding data
raw_data={}
notroi = 'Background' #will look at all rois except background
for cgroup, frame1 in exceldata.groupby('Genotype'):
crois = frame1['roi'].unique()
crois = [ccroi for ccroi in crois if ccroi != notroi]
for croi in crois:
groupname = cgroup + '_' + croi
frame2 = frame1[frame1['roi'] == croi]
if len(frame2) != 0:
frame3 = cc2.intensityDataFrame(frame2)
raw_data[groupname] = frame3.subtractBackground(exceldata)
'''
print('Stimulation Protocol')
volt = cc2.intensityDataFrame(exceldata).getVoltage()
timevolt = np.arange(0, len(volt))/100
plot=figure(y_range = (timevolt[0], timevolt[-1]), x_range = (0, 0.9), plot_width=600, plot_height=200)
plot=figure( plot_width=600, plot_height=200)
source = ColumnDataSource(data=dict(y=volt, x= timevolt ))
plot.line('x', 'y', source = source, line_width = 3, line_color ='red')
plot.x_range = Range1d(0, np.max(timevolt)*1.05)
plot.y_range = Range1d(0,np.max(volt)*1.05)
plot.xaxis.axis_label = 'Time (S)'
plot.yaxis.axis_label = 'Volt (V)'
#plot.line(timevolt,volt)
#output_file("StimProtocol.html", title = 'Stimulation Protocol')
show(plot)
from bokeh.models import LinearAxis, Range1d
from bokeh.palettes import Spectral5
from bokeh.models import Legend
#create a dictionary holding data
raw_data={}
notroi = 'Background' #will look at all rois except background
croi = 'Posterior1'
for cgroup, frame1 in exceldata[exceldata['Posterior1 Responds']==1].groupby('Genotype'):
#crois = frame1['roi'].unique()
#crois = [ccroi for ccroi in crois if ccroi != notroi]
groupname = cgroup + '_' + croi
frame2 = frame1[frame1['roi'] == croi]
if len(frame2) != 0:
frame3 = cc2.intensityDataFrame(frame2)
raw_data[groupname] = frame3.subtractBackground(exceldata)
print('Responses from all GAL4 drivers lines from ROI "posterior1" that had an evident response to the stimulation.')
print('Titles for each graph indicated GAL4 and ROI where signal was measured.')
#Intensity Data (subtract background plot)
#Each figure will plot a different gentoype
#black line is mean value
#light grey lines are individual data
timeStamp = cc2.intensityDataFrame(exceldata).getTimeStamp()
for ckey in list(raw_data.keys()):
#get the min and max range for the data
data = np.vstack(raw_data[ckey]['intensity'])
min1 = np.min(data)
max1 = np.max(data)
p = figure(plot_width=800, plot_height=400, y_range=Range1d(min1, max1), x_range = Range1d(0, np.max(timeStamp)), x_axis_label = 'Time (S)', y_axis_label = 'Intensity - Background')
#plot showing voltage
p.title.text = ckey
p.extra_y_ranges = {"foo": Range1d(start=-0, end=2)}
p.add_layout(LinearAxis(y_range_name='foo', axis_label = 'Volt (V)'), 'right')
c = p.line(timevolt, volt, y_range_name = 'foo', line_color = (255,0, 0), line_alpha=0.5, line_width =2)
#plot showing mean data results
legend_it = [('Voltage', [c])]
c = p.line(x=timeStamp, y=np.mean(data, axis=0), line_width=2, line_color = (0, 0, 0))
legend_it.append(('Mean', [c]))
for row in range(0,data.shape[0]):
c = p.line(x=timeStamp, y=data[row, :], line_width=2, line_color = (150, 150, 150), line_alpha = 0.5) #line_color = colors[cgroup])
legend_it.append((raw_data[ckey]['Sample Name'].iloc[row], [c]))
#p.sizing_mode = 'scale_width'
legend = Legend(items = legend_it, location=(0, 100))
legend.click_policy="hide"
p.add_layout(legend, 'right')
#p.x_range = Range1d(0, 450)
p.y_range = Range1d(min1, max1)
#output_file("Mean-RawIntensity.html", title = 'Stimulation Protocol')
#p.patch(timevolt2, volt2, y_range_name = 'foo')
show(p)
#create a dictionary holding data
raw_data={}
notroi = 'Background' #will look at all rois except background
croi = 'Posterior1'
for cgroup, frame1 in exceldata.groupby('Genotype'):
crois = frame1['roi'].unique()
crois = [ccroi for ccroi in crois if ccroi != notroi]
groupname = cgroup + '_' + croi
frame2 = frame1[frame1['roi'] == croi]
if len(frame2) != 0:
frame3 = cc2.intensityDataFrame(frame2)
raw_data[groupname] = frame3.subtractBackground(exceldata)
print('Responses from all GAL4 drivers lines from ROI "posterior1".')
print('Titles for each graph indicated GAL4 and ROI where signal was measured.')
#Intensity Data (subtract background plot)
#Each figure will plot a different gentoype
#black line is mean value
#light grey lines are individual data
timeStamp = cc2.intensityDataFrame(exceldata).getTimeStamp()
for ckey in list(raw_data.keys()):
#get the min and max range for the data
data = np.vstack(raw_data[ckey]['intensity'])
min1 = np.min(data)
max1 = np.max(data)
p = figure(plot_width=800, plot_height=400, y_range=Range1d(min1, max1), x_range = Range1d(0, np.max(timeStamp)), x_axis_label = 'Time (S)', y_axis_label = 'Intensity - Background')
#plot showing voltage
p.title.text = ckey
p.extra_y_ranges = {"foo": Range1d(start=-0, end=2)}
p.add_layout(LinearAxis(y_range_name='foo', axis_label = 'Volt (V)'), 'right')
c = p.line(timevolt, volt, y_range_name = 'foo', line_color = (255,0, 0), line_alpha=0.5, line_width =2)
#plot showing mean data results
legend_it = [('Voltage', [c])]
c = p.line(x=timeStamp, y=np.mean(data, axis=0), line_width=2, line_color = (0, 0, 0))
legend_it.append(('Mean', [c]))
for row in range(0,data.shape[0]):
c = p.line(x=timeStamp, y=data[row, :], line_width=2, line_color = (150, 150, 150), line_alpha = 0.5) #line_color = colors[cgroup])
legend_it.append((raw_data[ckey]['Sample Name'].iloc[row], [c]))
#p.sizing_mode = 'scale_width'
legend = Legend(items = legend_it, location=(0, 100))
legend.click_policy="hide"
p.add_layout(legend, 'right')
#p.x_range = Range1d(0, 450)
p.y_range = Range1d(min1, max1)
#output_file("Mean-RawIntensity.html", title = 'Stimulation Protocol')
#p.patch(timevolt2, volt2, y_range_name = 'foo')
show(p)